package debut.peinture;

import java.io.IOException;
import java.net.URL;

import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class PeintureGrilleAdapteur extends BaseAdapter {
	private Context monContexte;
//	private List<PeintureDonnees> mesItemsAdapteur = new ArrayList<PeintureDonnees>();
    private Cursor dbcur = null;
    private static final int CELLULE_HAUTEUR = 200;
    private static final int CELLULE_LARGEUR = 200;
	
	public PeintureGrilleAdapteur(Context contexte, Cursor cur) {
    	monContexte = contexte;
    	dbcur = cur;
    }

	public int getCount() {
		int retour = dbcur.getCount();
		return retour;
	}

	public Object getItem(int position) {
		PeintureDonnees retour = null;
		String[] colonnes = monContexte.getResources().getStringArray(R.array.colonnes);
		if(dbcur.moveToPosition(position)) {
			retour = new PeintureDonnees(dbcur.getString(dbcur.getColumnIndex(colonnes[0])),
					dbcur.getString(dbcur.getColumnIndex(colonnes[1])),
					dbcur.getString(dbcur.getColumnIndex(colonnes[2])),
					dbcur.getString(dbcur.getColumnIndex(colonnes[7])));
		}
		return retour;
	}

	public long getItemId(int position) {
		return position;
	}

	public View getView(final int position, View convertView, ViewGroup parent) {
		ImageView vue = new ImageView(monContexte);
		vue.setLayoutParams(new GridView.LayoutParams(CELLULE_LARGEUR, CELLULE_HAUTEUR));
		vue.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
		vue.setPadding(2, 2, 2, 2);
		vue.setBackgroundColor(R.color.textejaune);
		final ImageView vuebis = vue;
		new Thread() {
			@Override
			public void run() {
				String[] colonnes = monContexte.getResources().getStringArray(R.array.colonnes);
				String lienIcone = null;
				if(dbcur.moveToPosition(position)) {
					lienIcone = dbcur.getString(dbcur.getColumnIndex(colonnes[7]));
					Bitmap img = null;
					boolean fait = false;
					try {
						URL urlimage = new URL(lienIcone);
						img = BitmapFactory.decodeStream(urlimage.openConnection().getInputStream());
						fait = true;
					} catch (IOException e) {
//						Log.e(Context.ACTIVITY_SERVICE, "ImageAdapteur:getView:erreur accès image" + e.getMessage());
						fait = false;
					}
					if(fait) {
						int largeur = img.getWidth() * CELLULE_HAUTEUR / img.getHeight();
	    				int hauteur = CELLULE_HAUTEUR;
	    				final Bitmap imgbis = Bitmap.createScaledBitmap(img, largeur, hauteur, false);
						((Activity) monContexte).runOnUiThread(new Runnable() {
							@Override
							public void run() {
								vuebis.setImageBitmap(imgbis);
							}
						});
					}
				}
			}
		}.start();
		
		return vue;
	}

}
